package com.wicket.okrframework.web.contorller;
import cn.hutool.core.bean.BeanUtil;
import com.wicket.okrframework.biz.service.dto.req.*;
import com.wicket.okrframework.biz.service.dto.res.*;
import com.github.pagehelper.Page;
import com.github.pagehelper.page.PageMethod;
import com.wicket.okrframework.biz.service.ChangeColumnService;
import com.wicket.okrframework.common.util.CommonFunctionHelper;
import com.wicket.okrframework.common.ro.OkrResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@RestController
@RequestMapping("/base/changeColumn/")
public class ChangeColumnController {

    @Autowired
    ChangeColumnService changeColumnService;


    /**
   * D1-1撤销修订底层框架服务变更字段
   */
    @PostMapping("undoReviseBaseChangeCol")
    public OkrResult<UndoReviseBaseChangeColRespDto> undoReviseBaseChangeCol(@RequestBody @Validated UndoReviseBaseChangeColReqDto reqDTO){
    return OkrResult.success(changeColumnService.undoReviseBaseChangeCol(reqDTO));
    }

    /**
   * D1-1修订底层框架服务变更字段
   */
    @PostMapping("reviseBaseChangeCol")
    public OkrResult<ReviseBaseChangeColRespDto> reviseBaseChangeCol(@RequestBody @Validated ReviseBaseChangeColReqDto reqDTO){
    return OkrResult.success(changeColumnService.reviseBaseChangeCol(reqDTO));
    }

    /**
   * D1-1查询底层框架服务变更字段列表
   */
    @PostMapping("queryBaseChangeColList")
    public OkrResult<QueryBaseChangeColListRespDto> queryBaseChangeColList(@RequestBody @Validated QueryBaseChangeColListReqDto reqDTO){
    Page<?> page = CommonFunctionHelper.startPage(reqDTO.getPageNum(),reqDTO.getPageSize());

        QueryBaseChangeColListRespDto retData = changeColumnService.queryBaseChangeColList(reqDTO);

        retData.setPageNum(page.getPageNum());
        retData.setPageSize(page.getPageSize());
        retData.setTotalNum(page.getTotal());
        return OkrResult.success(retData);
    
    }
/**
   * D1-1查询底层变更记录列表
   */
    @PostMapping("queryBaseChangeRecordList")
    public OkrResult<QueryBaseChangeRecordListRespDto> queryBaseChangeRecordList(@RequestBody @Validated QueryBaseChangeRecordListReqDto reqDTO){
    return OkrResult.success(changeColumnService.queryBaseChangeRecordList(reqDTO));
    }
/**
   * D1-1新增底层变更字段(公共)
   */
    @PostMapping("addBaseChangeColCom")
    public OkrResult<AddBaseChangeColComRespDto> addBaseChangeColCom(@RequestBody @Validated AddBaseChangeColComReqDto reqDTO){
    return OkrResult.success(changeColumnService.addBaseChangeColCom(reqDTO));
    }
/**
   * D1-1存档底层变更字段(公共)
   */
    @PostMapping("archiveBaseChangeColCom")
    public OkrResult<ArchiveBaseChangeColComRespDto> archiveBaseChangeColCom(@RequestBody @Validated ArchiveBaseChangeColComReqDto reqDTO){
    return OkrResult.success(changeColumnService.archiveBaseChangeColCom(reqDTO));
    }
/**
   * D1-1批量删底层变更字段(公共)
   */
    @PostMapping("batchDeleteBaseChangeColCom")
    public OkrResult<BatchDeleteBaseChangeColComRespDto> batchDeleteBaseChangeColCom(@RequestBody @Validated BatchDeleteBaseChangeColComReqDto reqDTO){
    return OkrResult.success(changeColumnService.batchDeleteBaseChangeColCom(reqDTO));
    }
/**
   * D1-1撤销修订组织架构批次处理变更字段(公共)
   */
    @PostMapping("undoReviseOrgBatchHandleChangeColCom")
    public OkrResult<UndoReviseOrgBatchHandleChangeColComRespDto> undoReviseOrgBatchHandleChangeColCom(@RequestBody @Validated UndoReviseOrgBatchHandleChangeColComReqDto reqDTO){
    return OkrResult.success(changeColumnService.undoReviseOrgBatchHandleChangeColCom(reqDTO));
    }
/**
   * D1-1更新批次处理组织架构变更字段(公共)
   */
    @PostMapping("refreshBatchProcessingOrgChangeColCom")
    public OkrResult<RefreshBatchProcessingOrgChangeColComRespDto> refreshBatchProcessingOrgChangeColCom(@RequestBody @Validated RefreshBatchProcessingOrgChangeColComReqDto reqDTO){
    return OkrResult.success(changeColumnService.refreshBatchProcessingOrgChangeColCom(reqDTO));
    }
/**
   * D1修订底层变更字段(公共)
   */
    @PostMapping("reviseBaseChangeColCom")
    public OkrResult<ReviseBaseChangeColComRespDto> reviseBaseChangeColCom(@RequestBody @Validated ReviseBaseChangeColComReqDto reqDTO){
    return OkrResult.success(changeColumnService.reviseBaseChangeColCom(reqDTO));
    }
/**
   * D1-1撤销存档底层变更字段(公共)
   */
    @PostMapping("undoArchiveBaseChangeColCom")
    public OkrResult<UndoArchiveBaseChangeColComRespDto> undoArchiveBaseChangeColCom(@RequestBody @Validated UndoArchiveBaseChangeColComReqDto reqDTO){
    return OkrResult.success(changeColumnService.undoArchiveBaseChangeColCom(reqDTO));
    }
/**
   * D1-1生成变更记录语义内容(公共)
   */
    @PostMapping("generateChangeColSemanticContentCom")
    public OkrResult<GenerateChangeColSemanticContentComRespDto> generateChangeColSemanticContentCom(@RequestBody @Validated GenerateChangeColSemanticContentComReqDto reqDTO){
    return OkrResult.success(changeColumnService.generateChangeColSemanticContentCom(reqDTO));
    }
/**
   * D1-1修改底层变更字段(公共)
   */
    @PostMapping("updateBaseChangeColCom")
    public OkrResult<UpdateBaseChangeColComRespDto> updateBaseChangeColCom(@RequestBody @Validated UpdateBaseChangeColComReqDto reqDTO){
    return OkrResult.success(changeColumnService.updateBaseChangeColCom(reqDTO));
    }
/**
   * D1-判断重置修订元素(公共)
   */
    @PostMapping("judgeResetReviseElementCom")
    public OkrResult<JudgeResetReviseElementComRespDto> judgeResetReviseElementCom(@RequestBody @Validated JudgeResetReviseElementComReqDto reqDTO){
    return OkrResult.success(changeColumnService.judgeResetReviseElementCom(reqDTO));
    }
/**
   * D1修订就职记录底层变更字段判断(公共)
   */
    @PostMapping("reviseJudgeBaseChangeColCom")
    public OkrResult<ReviseJudgeBaseChangeColComRespDto> reviseJudgeBaseChangeColCom(@RequestBody @Validated ReviseJudgeBaseChangeColComReqDto reqDTO){
    return OkrResult.success(changeColumnService.reviseJudgeBaseChangeColCom(reqDTO));
    }
/**
   * D1-1执行修订底层变更字段(公共)
   */
    @PostMapping("implementReviseBaseChangeColCom")
    public OkrResult<ImplementReviseBaseChangeColComRespDto> implementReviseBaseChangeColCom(@RequestBody @Validated ImplementReviseBaseChangeColComReqDto reqDTO){
    return OkrResult.success(changeColumnService.implementReviseBaseChangeColCom(reqDTO));
    }
/**
   * D1-1判断生命周期底层变更字段
   */
    @PostMapping("judgeSubjectLifeCycleBaseChangeCol")
    public OkrResult<JudgeSubjectLifeCycleBaseChangeColRespDto> judgeSubjectLifeCycleBaseChangeCol(@RequestBody @Validated JudgeSubjectLifeCycleBaseChangeColReqDto reqDTO){
    return OkrResult.success(changeColumnService.judgeSubjectLifeCycleBaseChangeCol(reqDTO));
    }
/**
   * D1-判断重置修订元素
   */
    @PostMapping("judgeReviseElement")
    public OkrResult<JudgeReviseElementRespDto> judgeReviseElement(@RequestBody @Validated JudgeReviseElementReqDto reqDTO){
    return OkrResult.success(changeColumnService.judgeReviseElement(reqDTO));
    }
/**
   * D1-1判断生命周期底层变更字段(公共)
   */
    @PostMapping("judgeSubjectLifeCycleBaseChangeColCom")
    public OkrResult<JudgeSubjectLifeCycleBaseChangeColComRespDto> judgeSubjectLifeCycleBaseChangeColCom(@RequestBody @Validated JudgeSubjectLifeCycleBaseChangeColComReqDto reqDTO){
    return OkrResult.success(changeColumnService.judgeSubjectLifeCycleBaseChangeColCom(reqDTO));
    }
/**
   * D1修订组织批次下内容
   */
    @PostMapping("reviseOrgAtchContent")
    public OkrResult<ReviseOrgAtchContentRespDto> reviseOrgAtchContent(@RequestBody @Validated ReviseOrgAtchContentReqDto reqDTO){
    return OkrResult.success(changeColumnService.reviseOrgAtchContent(reqDTO));
    }
/**
   * D1批量回写底层变更字段(公共)
   */
    @PostMapping("batchWriteBackBaseChangeColCom")
    public OkrResult<BatchWriteBackBaseChangeColComRespDto> batchWriteBackBaseChangeColCom(@RequestBody @Validated BatchWriteBackBaseChangeColComReqDto reqDTO){
    return OkrResult.success(changeColumnService.batchWriteBackBaseChangeColCom(reqDTO));
    }
}
